package mahi.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

//Fail fast keyword

public class Test {
	public static void main(String[] args) {
		
		List<String> lst = new ArrayList<>();  
		lst.add("mahi");   						
		lst.add("test");
		lst.add("train");
		
		System.out.println(lst);
		
		for(int i=0; i<lst.size(); i++)
		{
			System.out.println(lst.get(i));
		}
		
		for(String str : lst)
		{
			System.out.println("java6 for: "+str);
		}
		
		System.out.println("==============");
		Iterator<String> iteratorList =  lst.iterator();
		while(iteratorList.hasNext())
		{
			System.out.println(iteratorList.next());
//			lst.add("train123");
//			lst.remove(1);
			iteratorList.remove();
		}
		
		System.out.println("==============");
		
		System.out.println("lst = "+ lst);
		
		 iteratorList =  lst.iterator();
		for(;iteratorList.hasNext();)
		{
			System.out.println(iteratorList.next());
		}
		
		
		Set<String> set = new HashSet<>();
		set.add("5");
		set.add("2");
		set.add("5");
		set.add("1");
		set.add("3");
		
		System.out.println("Set= " +set);
		
		
		Map<String, Integer> map = new HashMap<>();
		map.put("a", 1);
		map.put("c", 3);
		map.put("b", 5);
		
		System.out.println(map);
		map.put("b", 1);
		System.out.println(map);
		map.put("d", 3);
		
		
		
//		map  keySet   valuesList
		
		Set<String> keySet = map.keySet();
		for(String str: keySet)
		{
			System.out.println("Key = "+str);
		}
		
//		List<Integer> lst1 = (List<Integer>) map.values();
		
		Collection<Integer> collection = map.values();
		for(Integer str: collection)
		{
			System.out.println("Value = "+str);
		}
		

		
	
//		Set<String> set1= new TreeSet<>();
//		set1.add("5");
//		set1.add("2");
//		set1.add("5");
//		set1.add("1");
//		set1.add("3");
//		
//		System.out.println("Set= " +set1);
		
		
		List<Integer> intList = new LinkedList<>();
		
		
		List<Integer> lst2 = new ArrayList<>();
		lst2.add(1);
		lst2.add(2);
		lst2.add(3);
		lst2.add(3);
		List<Integer> lst3 = new ArrayList<>();
		lst3.add(4);
		lst3.add(5);
		
		lst2.addAll(lst3);
		System.out.println(lst2);
		
		Integer[] a = new Integer[10];
//		a[0] =0;
//		a[1] =2;
//		a[2] =4;
		for(int i=0;i<a.length;i++)
		{
			System.out.println(a[i]);
		}
		
		System.out.println("===============");
		
		a = lst2.toArray(new Integer[10]);
		for(int i=0;i<a.length;i++)
		{
			System.out.println(a[i]);
		}
		
		
		
		
		
		Set<Integer> set1 = (Set<Integer>) lst3;
		
		
		
		
		
		
		
	}
}
